package File;

import java.io.File;

/**
 * @Description File类的判断、获取功能
 * 判断：
 * public boolean isDirectory() 测试此抽象路径名表示的File是否为目录
 * public boolean isFile() 测试此抽象路径名表示的File是否为文件
 * public boolean exists() 测试此抽象路径名表示的File是否存在
 * <p>
 * 获取：
 * public String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串
 * public String getPath() 将此抽象路径名转换为路径名字符串
 * public String getName() 返回由此抽象路径名表示的文件或目录的名称
 * public String[] list() 返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
 * public File[] listFiles() 返回此抽象路径名表示的目录中的文件和目录的File对象数组
 * @Author zzj
 * @Date 2020/7/19 22:47
 */
public class FileDemo03 {
    public static void main(String[] args) {
        // 1.判断D:\\file是否是目录
        File f1 = new File("D:\\file");
        System.out.println(f1.isDirectory());  // true

        // 2. 判断D:\\file\\a.txt是否是文件
        File f2 = new File("D:\\file\\a.txt");
        System.out.println(f2.isFile());  // true

        // 3. 判断文件或者文件夹是否存在
        File f3 = new File("D:\\file\\A");
        System.out.println(f3.exists());  // true

        // 1. 获取当前项目下FileDemo03的绝对路径
        File f4 = new File("FileDemo03.java");
        System.out.println(f4.getAbsolutePath());  // D:\IntelliJ IDEA  Projects\IO流\FileDemo03.java

        // 2. 返回f4的当前的抽象路径
        System.out.println(f4.getPath());
        // 3. 返回f4的文件名
        System.out.println(f4.getName());

        // 4. 获取由D:file下的文件和文件夹组成的名称字符串数组
        File f5 = new File("D:\\file");
        String[] list = f5.list();
        for (String s : list) {
            System.out.print(s + "\t");  // A	a.txt	B
        }

        // 5. 获取由D:file下的文件和文件夹的File对象数组
        File f6 = new File("D:\\file");
        File[] files = f6.listFiles();
        for (File file : files) {
            System.out.println(file);  // D:\file\a.txt  D:\file\B
            // 是文件就获取文件名
            if (file.isFile()) {
                System.out.println(file.getName());  // a.txt
            }
        }

    }
}
